Computer databases employ a programming language, called a Structured Query Language (SQL), to programmatically interface with users and external computer applications via SQL queries, including data input, output, and numerous logical search functions. Due to the complexity of the SQL syntax, database programming requires special knowledge and training. However, as necessity for database access and interface continues to increase, a wide variety of users with different levels of programming skills need to have access and basic ability to perform database programming by implementing SQL queries.
User interface based SQL editors attempt to address the issue of simplifying the query building process. However, existing solutions merely collect user input without attempting to guide the user in optimizing query performance during the query construction process. Hence, the user has to complete multiple iterations of the query building process and test various query construction scenarios in order to eliminate mistakes and optimize performance. Even in case of experienced users, this increases the development cost and lengthens the development cycle and can be a daunting task for users with little or no knowledge of database management systems (DBMS) and SQL. The foregoing problems are exacerbated when the resulting SQL query is manually incorporated into external application code where additional sources of error may be introduced. Further sources of error may be introduced when changes need to be made to the SQL queries manually incorporated into the external application code.